package io.github.libkodi.session.interfaces;

import java.util.Set;

import io.vertx.core.Future;

public interface Session {
	public Future<String> getString(String key);
	public Future<Integer> getInteger(String key);
	public Future<Double> getDouble(String key);
	public Future<Float> getFloat(String key);
	public Future<Long> getLong(String key);
	public Future<Boolean> getBoolean(String key);
	public <T> Future<T> getJavaObject(String key, Class<T> clazz);
	public Future<Void> setString(String key, String value);
	public Future<Void> setInteger(String key, int value);
	public Future<Void> setDouble(String key, double value);
	public Future<Void> setFloat(String key, float value);
	public Future<Void> setLong(String key, long value);
	public Future<Void> setBoolean(String key, boolean value);
	public Future<Void> setJavaObject(String key, Object value);
	public Future<Void> remove(String key);
	public Future<Void> setExpire(int seconds);
	public Future<Set<String>> keys();
	public Future<Void> renew();
	public Future<Void> destory();
	public String id();
}
